﻿/*
题目: 买卖股票的最佳时机 II
 
给你一个整数数组 prices ，其中 prices[i] 表示某支股票第 i 天的价格。

在每一天，你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买，然后在 同一天 出售。

返回 你能获得的 最大 利润 。

https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/
*/

#include <iostream>
#include <random>
#include <string>
#include <vector>
#include <list>
#include "TreeNode.hpp"
#include "ListNode.hpp"
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <functional>

using namespace std;

class Solution {
public:
    // 贪心，能卖就卖
    int maxProfit(vector<int>& prices) {
        int mval = INT_MAX;
        int res = 0;

        for (int i = 0; i < prices.size(); i++) {
            if (prices[i] > mval) {
                res += prices[i] - mval;
                mval = INT_MAX;
            }
            mval = min(mval, prices[i]);
        }

        return res;
    }
};
